package cl.utalca.corretajes.servicios
{
	/**
	 * Hecho por Fabian Ruminot M.
	 * InformeCompletoService.as clase InformeCompletoService para ser usada en la elaboracion 
	 * del Informe Completo en una Tasacion.
	 * Equipo 3. 
	 */ 
	import mx.collections.ArrayCollection; 
	import mx.controls.Alert;
	import mx.rpc.events.FaultEvent;
	
	public class InformeCompletoService extends GenericService
	{
		/**
		 *Función PeticionService. esta compuesta por tres pasos fundamentales:
		 *destination: es la destinacion del informe Completo, en este caso PeticionService
		 * source: indica que clase de servidor le voy a invocar.
		 * addEventListener: se usa para escuchar los errores.  
		 */
		public function InformeCompletoService()
		{
			super();			
			this.destination="InformeCompletoService";
			this.source="services.InformeCompletoService";//indica que clase del servidor voy a invocar
			this.addEventListener(FaultEvent.FAULT,errorHandler);//agrego un listener para escuchar los errores
		}
		
		/**
		 *Función errorHandler, envía un error de comunicado con PeticionService. 
		 */ 
		public function errorHandler(event:FaultEvent):void
		{
			Alert.show("Error comunicando con InformeCompletoService\n"+event.message,"Error");
		}
		
		/**
		 *Función GuardarInformeCompleto, encargado de comunicarse y guardar el Informe Completo en una Tasación.
		 *@return -1 si lo guardado esta correcto. 
		 */ 
		public function guardarInformeCompleto(InformeCompleto:Object):int
		{
			this.getOperation("guardarInformeCompleto").send(InformeCompleto);
			return -1;
		}
		/**
        * Hecho por Roberto Needham
        * Función que edita un informe completo existente en el sistema
        * @param informeCompleto InformeCompleto seleccionada para editar        
        */
        public function editarInformeCompleto(informeCompleto:Object):int
		{
			this.getOperation("editarInformeCompleto").send(informeCompleto);
			return -1;
		}
		
		/**
		 * Hecho por Roberto Needham
		 * Función que obtiene array de los informes completos existentes en el sistema
		 */
		public function obtenerTodosInformesCompletos():ArrayCollection
        {
            this.getOperation("obtenerTodosInformesCompletos").send();
            return null;
        }
		
	}
}